import {adminList,adminCount} from '../../../request/api'

const state = {
    // 管理员列表
    adminlist:[],
    // 页面显示条数
    pageSize:3,
    // 页码
    pageNum:1,
    // 总条数
    count:0
}
const getters={
    // 获取管理员列表
    getAdmin(state){
        return state.adminlist
    },
    // 获取条数
    getSize(state){
        return state.pageSize
    },
    //获取总条数
    getCount(state){
        return state.count
    } 
}

const mutations={
    REQ_ADMINLIST(state,payload){
        state.adminlist=payload
    },
    REQ_COUNT(state,payload){
        state.count=payload
    },
    // 同步修改页码事件
    REQ_PAGE(state,payload){
        state.pageNum=payload
    }
}

const actions ={
    // 获取管理员列表行动
    getAdminListAction(context){
        // console.log(context);
        adminList({
            size:context.state.pageSize, //查询条数
            page:context.state.pageNum //页码
        }).then(res=>{
            /*删除非第一页最后一条数据时出现bug，是因为获取的是当前页码已经没有数据了
            解决： pageNum -1  注意条件判断*/ 
            // console.log(res)
            let list = res.list?res.list:[]
            if(context.state.pageNum != 1 && list.length ==0){
                //给pageNum -1 并重新调用列表
                context.dispatch('changePageAction',context.state.pageNum-1)
            }
            context.commit('REQ_ADMINLIST',list)
        })
    },
    // 获取总条数
     async getAdminCount({commit}){
        let res = await  adminCount()
        commit('REQ_COUNT',res.list[0].total)
    },
    // 获取当前页行动并重新调用列表行动
    changePageAction(context,payload){
        // 修改页码
        context.commit('REQ_PAGE',payload)
        // 重新调用接口
        context.dispatch('getAdminListAction')
    }

}

export default{
    state,
    getters,
    mutations,
    actions,
    namespaced:true
}